//
// Created by wyh on 2025-06-22 10:23.
//

#ifndef TEST_UTILITY_STRING_H
#define TEST_UTILITY_STRING_H
#include <string>
#include <algorithm>
#include <vector>

namespace wyh {
    namespace utility {
        class String
        {
        public:
            String() = default;
            ~String()=default;

            static std::string to_lower(const std::string &input);

            static std::string to_upper(const std::string &input);

            static std::string ltrim(const std::string &input, const std::string &trims);
            static std::string rtrim(const std::string &input, const std::string &trims);
            static std::string trim(const std::string &input, const std::string &trims);


            //字符串分割
            static std::vector<std::string> split(const std::string &input,const std::string &separator);
            static std::vector<std::string> split(const std::string &input,char separator);

            //字符串合并
            static std::string join(const std::vector<std::string>& input,const std::string &separator);
            static std::string join(const std::vector<std::string>& input,char separator);

            static bool has_prefix(const std::string &input,const std::string &prefix);//判断是否有前缀
            static bool has_suffix(const std::string &input,const std::string &suffix);//判断是否有后缀

            static std::string capitalize(const std::string &input);//单个单词首字母大写
            static std::string format(const char *format,...);//格式化
        };
    } // namespace utility
} // namespace wyh

#endif //TEST_UTILITY_STRING_H
